{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "nasty-shore",
   "metadata": {},
   "source": [
    "https://leetcode.com/problems/max-increase-to-keep-city-skyline\n",
    "\n",
    "\n",
    "Runtime: 4 ms, faster than 94.92% of Go online submissions for Max Increase to Keep City Skyline.\n",
    "Memory Usage: 4.1 MB, less than 10.17% of Go online submissions for Max Increase to Keep City Skyline.\n",
    "\n",
    "\n",
    "```go\n",
    "package main\n",
    "\n",
    "import (\n",
    "\t\"fmt\"\n",
    ")\n",
    "\n",
    "func get_min_value(v []int) int {\n",
    "\te := v[0]\n",
    "\tfor _, v := range v {\n",
    "\t\tif v < e {\n",
    "\t\t\te = v\n",
    "\t\t}\n",
    "\t}\n",
    "\treturn e\n",
    "}\n",
    "\n",
    "func get_max_value(v []int) int {\n",
    "\te := v[0]\n",
    "\tfor _, v := range v {\n",
    "\t\tif v > e {\n",
    "\t\t\te = v\n",
    "\t\t}\n",
    "\t}\n",
    "\treturn e\n",
    "}\n",
    "\n",
    "func maxIncreaseKeepingSkyline(grid [][]int) int {\n",
    "\t//3:47\n",
    "\trow_skyline := make([]int, 0)\n",
    "\tcolumn_skyline := make([]int, 0)\n",
    "\tfor _, row := range grid {\n",
    "\t\trow_skyline = append(row_skyline, get_max_value(row[:]))\n",
    "\t}\n",
    "\tfor i := 0; i < len(grid); i++ {\n",
    "\t\tcolumn := make([]int, 0)\n",
    "\t\tfor j := 0; j < len(grid[0]); j++ {\n",
    "\t\t\tcolumn = append(column, grid[j][i])\n",
    "\t\t}\n",
    "\t\tcolumn_skyline = append(column_skyline, get_max_value(column[:]))\n",
    "\t}\n",
    "\tresult := 0\n",
    "\tfor y, row := range grid {\n",
    "\t\tfor x, value := range row {\n",
    "\t\t\tarr := [2]int{row_skyline[y], column_skyline[x]}\n",
    "\t\t\ttarget := get_min_value(arr[:])\n",
    "\t\t\tresult += target - value\n",
    "\t\t}\n",
    "\t}\n",
    "\treturn result\n",
    "\t//4:03\n",
    "\t//debug from 4:30 to 4:32\n",
    "}\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ranking-trout",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Go",
   "language": "go",
   "name": "gophernotes"
  },
  "language_info": {
   "codemirror_mode": "",
   "file_extension": ".go",
   "mimetype": "",
   "name": "go",
   "nbconvert_exporter": "",
   "pygments_lexer": "",
   "version": "go1.15.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
